<?php

class ListFAQ extends TPage {
//<editor-fold defaultstate="collapsed" desc="Constantes">
  const SESION_DATOS = "arr";
  //funciones pagina
  const FUNCION_VER = "Ver";
  const FUNCION_CREAR = "Crear";
  const FUNCION_EDITAR = "Editar";
  const FUNCION_ELIMINAR = "Eliminar";

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Metodos Privados">
  /**
   * obtiene los registros desde la base de datos
   * @author VSR, 01/01/2011
   */
  private function obtenerDatos(){
    try {
      //obtiene valores de los controles
      $idUsuario = "-1";
      $textoFiltroPregunta = Utilidades::isNull($this->txtFiltroPregunta->Text, "-1");

      //obtiene listado
      $arr = PreguntaFrecuente::obtenerListadoConFiltroCliente($idUsuario, $textoFiltroPregunta);

      //guarda el resultado en session
      Utilidades::grabarSessionPorNombre(self::SESION_DATOS, $arr);
    } catch (Exception $e) {
      throw new Exception($e->getMessage());
    }
  }

  /**
   * actualiza los controles de la pagina segun los datos obtenidos
   * @author VSR, 01/01/2011
   */
  private function actualizaInterfaz(){
    $totalRegistros = 0;
    try {
      $arr = Utilidades::obtenerSessionPorNombre(self::SESION_DATOS);
      if(is_null($arr)) {
        $totalRegistros = 0;
      } else {
        $totalRegistros = count($arr);
      }

      if($totalRegistros > 0) {
        $arr = Utilidades::configurarPaginadorDataList($arr, $totalRegistros, $this->dlFAQ, $this->pnlPaginadorTop, $this->pnlPaginadorBottom, $this->pagerTop, $this->pagerBottom);
        $this->pnlHolderGrilla->Visible = true;
        //carga la grilla a utilizar
        $this->dlFAQ->Visible = true;
        $this->dlFAQ->DataSource = $arr;
        $this->dlFAQ->dataBind();
        Utilidades::mostrarTotalRegistrosGrilla($totalRegistros, $this->lblTotalRegistros);
      } else {
        $this->pnlHolderGrilla->Visible = false;
        $this->pnlMensajeUsuario->Visible = true;
        $textoMensaje = "No se encontraron registros";
        Utilidades::setPanelMensajeUsuario($this->pnlMensajeUsuario, $textoMensaje, "50%", Utilidades::ESTILO_MENSAJE_ADVERTENCIA);
        //oculta la grilla
        $this->dlFAQ->Visible = false;
      }
    } catch (Exception $e) {
      throw new Exception($e->getMessage());
    }
  }

  /**
   * inicializa algunos controles cuando se carga por primera vez la pagina
   * @param <type> $isPostBack
   * @author VSR, 01/01/2011
   */
  private function inicializaControles($isPostBack){
    try {
      $registrosPorPagina = $this->txtFiltroRegistrosPorPagina->Text;

      //-- inicializacion de controles que dependen del postBack --
      if(!$isPostBack){
        //colocar controles
      }

      //-- inicializacion de controles que NO dependen del postBack --
      if($registrosPorPagina == "") {
        $this->txtFiltroRegistrosPorPagina->Text = Utilidades::obtenerRegistrosPorPaginaDefault($this->Application);
      }
      $this->btnFiltrar->Attributes->Add("onclick", "return(validarFormularioBusqueda())");

    } catch (Exception $e) {
      throw new Exception($e->getMessage());
    }
  }

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Eventos Controles">
  public function onLoad($param) {
    parent::onLoad($param);
    $this->inicializaControles($this->IsPostBack);
  }

  public function btnFiltrarClick($sender, $param){
    $pageSize = trim($this->txtFiltroRegistrosPorPagina->Text);
    if($pageSize == "" || $pageSize == "0") {
      $pageSize = Utilidades::obtenerRegistrosPorPaginaDefault($this->Application);
      $this->txtFiltroRegistrosPorPagina->Text = $pageSize;
    }
    //asigna total de registros por pagina
    $this->dlFAQ->PageSize = $pageSize;
    //Muestra la primera pagina del paginador
    $this->dlFAQ->CurrentPageIndex = 0;
    $this->obtenerDatos();
    $this->actualizaInterfaz();
  }

  public function onChangePageDataList($sender,$param) {
    $this->dlFAQ->CurrentPageIndex = $param->NewPageIndex;
    $this->actualizaInterfaz();
  }

  public function onDataBoundDataList($sender, $param){
    $paginaActual = Utilidades::obtenerNombrePaginaActual($this);
    $item = $param->Item;
    if($item->ItemType==='Item' || $item->ItemType==='AlternatingItem')
    {
      $lblPregunta = $item->findControl("lblPregunta");
      $lblRespuesta = $item->findControl("lblRespuesta");

      //$lblPregunta->Text = "xx";
      //$lblRespuesta->Text = "yy";
    }
  }

//</editor-fold>

}

?>
